package cn.classg.xxl.job.model;

import cn.classg.xxl.job.constants.*;
import lombok.Data;

/**
 * XXL-JOB job必传参数，其它默认。但是可以修改默认参数
 * @author CLASSG
 */
@Data
public class DefaultXxlJobAddParam{

    /** 任务描述 */
    protected String jobDesc;

    /** 负责人 */
    protected String author;

    /** 报警邮件 */
    protected String alarmEmail;

    /** 调度类型 */
    protected ScheduleTypeEnum scheduleType = ScheduleTypeEnum.CRON;

    /** 调度配置，值含义取决于调度类型 */
    protected String scheduleConf;

    /** 执行器，任务Handler名称 */
    protected String executorHandler;

    /** 执行器，任务参数 */
    protected String executorParam;

    /** GLUE类型	#com.xxl.job.core.glue.GlueTypeEnum */
    protected GlueTypeEnum glueType = GlueTypeEnum.BEAN;

    /** 执行器路由策略 */
    protected ExecutorRouteStrategyEnum executorRouteStrategy = ExecutorRouteStrategyEnum.FIRST;

    /** 子任务ID，多个逗号分隔 */
    protected String childJobId;

    /** 调度过期策略 */
    protected MisfireStrategyEnum misfireStrategy = MisfireStrategyEnum.DO_NOTHING;

    /** 阻塞处理策略 */
    protected ExecutorBlockStrategyEnum executorBlockStrategy = ExecutorBlockStrategyEnum.SERIAL_EXECUTION;

    /** 任务执行超时时间，单位秒 */
    protected int executorTimeout = 0;

    /** 失败重试次数 */
    protected int executorFailRetryCount = 0;

    /** GLUE备注 */
    protected String glueRemark = "glueRemark";

}
